home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / COBOL / H309.ZIP / PSICO.ZIP / PSICO12.EXE / PSHELP.C74 < prev    next >
Text File  |  1993-02-05  |  14KB  |  441 lines

  1. @ACCEPT
  2.  
  3. ACCEPT identifier [ FROM mnemonic-name ]
  4.  
  5. Example:
  6.  
  7.    ACCEPT WS-NUMBER FROM CONSOLE
  8.  
  9. @ADMIT
  10. The PSICO ADMIT body is part of the POSIT structure. It can only be
  11. entered by a QUIT statement from the POSIT body, or from another structure
  12. nested within the POSIT.
  13.  
  14. See also POSIT and QUIT
  15.  
  16. @ADD
  17. Format 1:
  18.  
  19. ADD    numeric-item  TO  ╠  identifer [ ROUNDED ]  ╣
  20.  
  21.   [ [ ON ] SIZE ERROR     imperative-statement]
  22.  
  23. where numeric-item is an identifier or a literal
  24. and all entries between ╠ and ╣ may be repeated
  25.  
  26. Format 2:
  27.  
  28. ADD  numeric-item  ╠  numeric-item  ╣   GIVING identifier [ROUNDED]
  29.   [ [ ON ] SIZE ERROR     imperative-statement]
  30. Format 3:
  31.  
  32. ADD CORRESPONDING identifer-1 TO identifer-2 [ROUNDED]
  33.   [ [ ON ] SIZE ERROR     imperative-statement]
  34.  
  35. Note:   CORRESPONDING can be abbreviated to CORR
  36. @ALTER
  37. This is obsolete and will be deleted at the next revision of the ANSI
  38. standard for COBOL
  39. @CALL
  40. CALL item [ USING identifer ╠, identifier ╣ ]
  41.  
  42. where item is a dataname or a literal program name
  43. and all entries between ╠ and ╣ may be repeated
  44. @CANCEL
  45. CANCEL  item
  46.  
  47. where item is a dataname or a literal program name
  48.  
  49. @CASE
  50. The PSICO SELECT structure can contain as many CASE clauses as required,
  51. each having its own COBOL condition. The CASE body is only performed if the
  52. stated condition is true.
  53.  
  54. If the final CASE does not contain a condition, it is treated as an ELSE
  55. case. If you leave the condition field blank, PSICO assumes that this is
  56. the last case.
  57.  
  58. @CLOSE
  59. CLOSE file-name [, file-name]
  60.  
  61. @COMPUTE
  62. COMPUTE identifier [ ROUNDED ] = arithmetic-expression
  63.   [ [ ON ] SIZE ERROR     imperative-statement]
  64.  
  65. @DELETE
  66. DELETE file-name [ RECORD ]
  67.    [ INVALID [ KEY ] imperative-statement]
  68.  
  69. @DISPLAY
  70. DISPLAY item [ UPON mnemonic-name ]
  71.  
  72. @DIVIDE
  73. Format 1:
  74.  
  75. DIVIDE    numeric-item    INTO    identifier [ ROUNDED ]
  76.   [ [ ON ] SIZE ERROR     imperative-statement]
  77.  
  78. Format 2:
  79.  
  80. DIVIDE numeric-item      {INTO or BY}    numeric-item
  81.     GIVING    identifier [ ROUNDED ]
  82.   [ REMAINDER identifier ]
  83.   [ [ ON ] SIZE ERROR     imperative-statement]
  84.  
  85. where numeric-item is an identifier or a literal
  86.  
  87. @EVALUATE
  88. ANS85 COBOL only
  89.  
  90. @INITIALIZE
  91. INITIALIZE item ╠, item ╣
  92.  
  93.     [ REPLACING ║   { ALPHANUMERIC        }  [ DATA ] BY item ]  ║
  94.                 ║   { NUMERIC             }                      ║
  95.                 ╠   { ALPHANUMERIC-EDITED }                      ╣
  96.                 ║   { NUMERIC-EDITED      }                      ║
  97.                 ║   { ALPHABETIC          }                      ║
  98.  
  99.     where all entries between ╠ and ╣ may be repeated
  100. @INSPECT
  101. Format 1:
  102.  INSPECT identifier-1 TALLYING
  103.  ║ identifier-2                                                            ║
  104.  ║   FOR ║ { { ALL      } ║ item ║ { BEFORE } [ INITIAL ] item ║ } ║   ║   ║
  105.  ║       ║ { { LEADING  } ╠      ╠ { AFTER  }                  ╣ } ╣   ║   ║
  106.  ╠       ╠ {                                                     }     ╣   ╣
  107.  ║       ║ { CHARACTERS   ║ { BEFORE }  [ INITIAL ] item   ║     }     ║   ║
  108.  ║                        ╠ { AFTER }                      ╣               ║
  109.  
  110. Format 2:
  111.  INSPECT identifier-1 REPLACING
  112.      ║ { { ALL      } ║ item BY item ║ { BEFORE } [ INITIAL ] item ║ } ║   ║
  113.      ║ { { LEADING  } ╠              ╠ { AFTER  }                  ╣ } ╣   ║
  114.      ╠ { { FIRST    }                                                }     ╣
  115.      ║                                                                     ║
  116.      ║ { CHARACTERS  BY  item ║ { BEFORE }  [ INITIAL ] item  ║      }     ║
  117.      ║                        ╠ { AFTER  }                    ╣            ║
  118.  
  119.    where all entries between ╠ and ╣ may be repeated
  120.  
  121. Formats 1 & 2 can be combined into a single statement, with the TALLYING
  122. clause preceding the REPLACING clause
  123. #
  124.  
  125. Format 3:
  126.  
  127. INSPECT identifier-1 CONVERTING
  128.         item         TO     item { BEFORE } [ INITIAL ] item  }
  129.                                  { AFTER  }
  130. @MENU
  131.                      The MENU functions available are
  132.  
  133.         E       Enter EDIT mode (Mainframe versions only)
  134.         F       Create a COBOL File definition
  135.         L       Create a LINKAGE data item.
  136.                 If LINKAGE SECTION is not present, it will be put in
  137.                 WORKING-STORAGE
  138.         W       Create a WORKING-STORAGE item
  139.         -       View or amend next highr level of nesting
  140.         +       View or amend next lower level of nesting
  141.  
  142.         ?XXX    to obtain help on a COBOL or PSICO command,
  143.                 eg ?UNSTRING, or ?PROC
  144.  
  145. @MERGE
  146. Not yet written
  147.  
  148. @MOVE
  149. Format 1:
  150.  
  151.       MOVE item TO identifier ╠, identifier ╣
  152.  
  153.   where all entries between ╠ and ╣ may be repeated
  154.  
  155. Format 2:
  156.  
  157.    MOVE CORRESPONDING identifier-1 TO identifier-2
  158.  
  159. Note:  CORRESPONDING can be abbreviated to CORR
  160. @MULTIPLY
  161. Format 1:
  162.   MULTIPLY item  BY  identifier [ ROUNDED ]
  163.        [ [ ON ]  SIZE ERROR     imperative-statement]
  164.  
  165. Format 2:
  166.   MULTIPLY item  BY  item
  167.      GIVING   identifier     [ ROUNDED ]
  168.      [ [ ON ] SIZE ERROR     imperative-statement]
  169.  
  170. @OPEN
  171.   OPEN  ║    { INPUT   }  ╠ filename ╣  ║
  172.         ╠    { OUTPUT  }                ╣
  173.         ║    { I-O     }                ║
  174.         ║    { EXTEND  }                ║
  175.  
  176. where all entries between ╠ and ╣ may be repeated
  177.  
  178. Example:
  179.  
  180.    OPEN INPUT  FILE-1 FILE2
  181.         OUTPUT FILE-3
  182.         I-O    FILE-4
  183.  
  184. @PERFORM
  185. Format 1:
  186.  
  187.   PERFORM procedure-name-1 [ THRU  procedure-name-2 ]
  188.  
  189. Format 2:
  190.  
  191.   PERFORM procedure-name-1 [ THRU  procedure-name-2 ]
  192.       numeric-item TIMES
  193.  
  194. Format 3:
  195.  
  196.   PERFORM procedure-name-1 [ THRU  procedure-name-2 ]
  197.       UNTIL condition
  198. #
  199. Format 4:
  200.  
  201.   PERFORM procedure-name-1 [ THRU  procedure-name-2 ]
  202.                 VARYING name-1 FROM item BY item UNTIL condition
  203.       [ ╠ AFTER VARYING name-2 FROM item BY item UNTIL condition ╣ ]
  204.  
  205.   where all entries between ╠ and ╣ may be repeated
  206.  
  207. @POSIT
  208. The PSICO POSIT is a type of selection structure in which the condition
  209. does not have to be at the start of the structure.
  210.  
  211. It is often used to avoid deep nesting of IF-THEN-ELSE statements,
  212. especially in validation.
  213.  
  214. A QUIT statement anywhere within the POSIT body, or within any structure
  215. nested inside it, transfers control to the associated ADMIT body, which
  216. must exist (but may be empty).
  217.  
  218. If a label is specified, you may nest POSIT's and then QUIT to the level
  219. which is named. QUIT :OUTER will quit a POSIT labelled OUTER, even from
  220. within other POSIT's nested within it.
  221.  
  222. See also QUIT and POSIT
  223.  
  224. @PROCTYPE
  225. A PSICO PROC is equivalent to a COBOL section. This generator and the
  226. associated COBFORM preprocessor provide several types of procedure:
  227.  
  228.   PROC
  229.  
  230.     A normal COBOL procedure. This is the default
  231.  
  232.   IPROC
  233.  
  234.     A JSP Inverted procedure, either single or multi-threading depending
  235.     on the PSVNAME and PSVTHREAD specified
  236.  
  237.   RPROC
  238.  
  239.     A recursive procedure, callable from within itself. See also RCALL
  240.  
  241. @PROCNAME
  242. The procedure name will be used as a COBOL SECTION name, and must therefore
  243. conform to the correct COBOL format.
  244.  
  245. @PSVNAME
  246. A numeric data item or array to be used for the Progam State Variable in an
  247. Inverted or Recursive procedure.
  248.  
  249. @PSVTHREAD
  250. A single numeric data item used as a thread index in an Inverted
  251. procedure, or as a Stack Pointer in a recursive routine.
  252.  
  253. It must NOT contain an OCCURS clause.
  254.  
  255. @READ
  256. There are two main formats, sequential and random (keyed)
  257.  
  258. READ  filename  [ NEXT ]  [ RECORD ]  [ INTO identifier ]
  259.       [ [ AT ]  END       imperative-statement
  260.  
  261. READ  filename          [ INTO identifier ]
  262.       [ KEY [ IS ]      identifier  ]
  263.       [ INVALID [ KEY ] imperative-statement ]
  264.  
  265. See also STATUS
  266.  
  267. @REWRITE
  268. Rewrite a record which has previously been read. File must be opened I-O
  269. for this to be valid. Can be sequential or keyed.
  270.  
  271. @QUIT
  272. The PSICO QUIT is a controlled GOTO which allows transfer of control from
  273. the POSIT body to the ADMIT body of a POSIT structure. It is often used to
  274. avoid deep nesting of IF-THEN-ELSE statements, especially in validation.
  275.  
  276. A QUIT statement anywhere within the POSIT body, or within any structure
  277. nested inside it, transfers control to the associated ADMIT body, which
  278. must exist. Any number of QUIT's may be coded within one POSIT
  279.  
  280. If a label is specified, you may nest POSIT's and then QUIT to the level
  281. which is named. QUIT :OUTER will quit a POSIT labelled OUTER, even from
  282. within other POSIT's nested within it.
  283.  
  284. You may also QUIT a labelled iteration (UNTIL, WHILE or TIMES) structure.
  285. In this case, you MUST specify the label, and control is transferred to
  286. the next statement after the end of the iteration.
  287.  
  288. See also POSIT and ADMIT
  289.  
  290. @SEARCH
  291. There are two formats for the table handling verb SEARCH. In both formats,
  292. there can be as many WHEN clauses as required
  293.  
  294. a) SEQUENTIAL search
  295.  
  296.     SEARCH     identifier-1    [ VARYING identifier-2 or index-name ]
  297.       AT END   imperative-statement
  298.       ║  WHEN  condition                                ║
  299.       ╠        { imperative-statement  }                ╣
  300.       ║        { NEXT SENTENCE         }                ║
  301.  
  302. where all entries between ╠ and ╣ may be repeated
  303.  
  304. If you want to start at the beginning of the table, you must reset the
  305. index to 1. Failure to do this is the most common cause of SEARCH bugs
  306.  
  307. b) BINARY search. The table MUST be sorted into order
  308.  
  309.     SEARCH ALL  identifier-1
  310.       AT END    imperative-statement
  311.       ║  WHEN   condition                                ║
  312.       ╠         { imperative-statement  }                ╣
  313.       ║         { NEXT SENTENCE         }                ║
  314. @SELECT
  315. The PSICO SELECT structure is an extended IF, and can contain as many CASE
  316. clauses as required, each having its own COBOL condition.
  317.  
  318. Only ONE of the CASE bodies will be performed, the first for which the
  319. condition is found to be true.
  320.  
  321. If the final CASE does not contain a condition, it is treated as an ELSE
  322. case. If you leave the condition field blank, PSICO assumes that this is
  323. the last case.
  324.  
  325. @SEQ
  326. A PSICO sequence structure contains a number of COBOL statements and/or
  327. structure commands to be obeyed sequentially.
  328.  
  329. The sequence body is the only structure in PSICO which can contain more
  330. than 10 lines.
  331.  
  332. The SEQ command can be used within any other structure to enable extra
  333. lines to be input.
  334.  
  335. @SEQUENCE
  336. A PSICO sequence structure contains a number of COBOL statements and/or
  337. structure commands to be obeyed sequentially.
  338.  
  339. The sequence body is the only structure in PSICO which can contain more
  340. than 10 lines.
  341.  
  342. The SEQ command can be used within any other structure to enable extra
  343. lines to be input.
  344.  
  345. @START
  346. This positions the file pointer to just before the first record which
  347. fulfils the key condition.
  348.  
  349. START filename KEY  [ NOT ]  { = } dataname
  350.                              { > }
  351.                              { < }
  352.      [ INVALID [ KEY ]  imperative-statement ]
  353.  
  354. @STATUS
  355. Some file status values are defined as part of the COBOL definition, but
  356. many implementors have added their own codes to the list.
  357.  
  358. Major key           Minor key
  359. 0  Success          Some values indicate warnings
  360. 1  AT END
  361. 2  INVALID KEY      1 = file sequence error (REWRITE, ?WRITE)
  362.                     2 = duplicate key (WRITE)
  363.                     3 = record with key does not exist (START, READ)
  364.                     4 = key out of range (WRITE)
  365. 3  File Error       4 = file full,
  366.                     5 = file not found (OPEN)
  367.                     9 = file does not match definition
  368. 4  Logic Error      1 = File already open (OPEN)
  369.                     2 = File not open (CLOSE)
  370.                     3 = REWRITE on record not previously read
  371.                     4 = record size wrong (WRITE, REWRITE)
  372.                     6 = read fails, previous read not successful
  373.                     7,8,9  = file not open in correct mode
  374.  
  375. @STRING
  376. STRING ║   ╠ item ╣  DELIMITED { SIZE       }  ║  INTO identifier
  377.        ╠                       { identifier }  ╣
  378.        ║                       { literal    }  ║
  379.  
  380.        [ WITH POINTER numeric-item         ]
  381.        [ ON OVERFLOW  imperative-statement ]
  382.  
  383.   where all entries between ╠ and ╣ may be repeated
  384. @UNSTRING
  385. UNSTRING identifier
  386.  
  387.   [ DELIMITED [ BY ] [ ALL ] item
  388.               ╠ OR [ ALL ] item ╣   INTO
  389.  
  390.   ╠ identifier [ DELIMITER [ IN ] identifier] [ COUNT [ IN ] identifier ] ╣
  391.  
  392.   [ [ WITH ]     POINTER numeric-item ]
  393.   [ TALLYING     [ IN ]  numeric-item ]
  394.   [ ON OVERFLOW  imperative-statement ]
  395.  
  396.   where all entries between ╠ and ╣ may be repeated
  397. @UNTIL
  398. A PSICO UNTIL structure contains a body which will be executed UNTIL the
  399. specified condition is TRUE. The test is at the start, and if the condition
  400. is initially TRUE, the body will not be executed at all.
  401.  
  402. If you need more than 10 lines in the body, you should use SEQ to create a
  403. sequence structure within the body.
  404.  
  405. @WHILE
  406. A PSICO WHILE structure contains a body which will be executed WHILE the
  407. specified condition is TRUE. The test is at the start, and if the condition
  408. is initially FALSE, the body will not be executed at all.
  409.  
  410. If you need more than 10 lines in the body, you should use SEQ to create a
  411. sequence structure within the body.
  412.  
  413. @TIMES
  414. A PSICO TIMES structure contains a body which will be executed a specified
  415. number of times. The controlling number can be either a literal, or held in
  416. a numeric data item.
  417.  
  418. If you need more than 10 lines in the body, you should use SEQ to create a
  419. sequence structure within the body.
  420.  
  421. @ZIF
  422. A PSICO ZIF structure creates a COBOL IF-THEN-ELSE. No other structures
  423. can be nested within these, because of the restrictions of COBOL74.
  424.  
  425. It is recommended that you use the SELECT statement instead.
  426.  
  427. @WRITE
  428.  
  429. Several formats
  430.  
  431. WRITE record-name
  432. WRITE record-name BEFORE/AFTER ADVANCING
  433. WRITE (keyed)
  434.  
  435. See also STATUS
  436.  
  437. @ZREAD
  438.  
  439. A PSICO ZREAD structure creates a COBOL READ-AT-END. No other structures
  440. can be nested within these, because of the restrictions of COBOL74.
  441.